﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word=Microsoft.Office.Interop.Word;

namespace MyWordAddIn
{
    /// <summary>
    /// ContentControl 控件方便快速定位范围
    /// </summary>
    public class WordContentControl
    {
        Word.Document doc;
        public WordContentControl(Word.Document doc)
        {
            this.doc = doc;
        }

        public void AddContentControl(Message msg,string title)
        {
            Object rng = doc.Paragraphs.Last.Range; //需要创建的位置
            Word.ContentControl conCtl = doc.ContentControls.Add(Word.WdContentControlType.wdContentControlRichText,rng);//创建后有一个明显的内容框 

            conCtl.Title = title;
            conCtl.Range.Text = "time now is: "+DateTime.Now.ToString();//默认创建后，有一些默认的文字：“单击此处输入文字” 一般可以置空 置空没用...
            conCtl.Range.InsertParagraphAfter();//这个方法的意思是 插入一行空段落 放到当前行的后边
            msg.AddMsg(conCtl.Range);
        }

        public void GetContentControl(Message msg,string title)
        {
            Word.ContentControl c = doc.SelectContentControlsByTitle(title)[1]; // word 中的第一个元素一般都从1开始
            if (c != null)
            {
                msg.AddMsg(c.Range);
            }
        }

        public void DelContentControl(Message msg,string title)
        {
            Word.ContentControl c = doc.SelectContentControlsByTitle(title)[1]; // word 中的第一个元素一般都从1开始

            if (c != null)
            {
                //conCtl.LockContentControl = false;
                //conCtl.LockContents = false;
                c.Delete(false); //删除该ContentControl 但保留内容
            }
        }
    }
}
